package cn.iocoder.yudao.module.biz.controller.admin.licence.vo;

import cn.iocoder.yudao.module.biz.dal.dataobject.licenceAnalyzeData.BizLicenceAnalyzeDataDO;
import cn.iocoder.yudao.module.biz.dal.dataobject.licencePerson.BizLicencePersonDO;
import cn.iocoder.yudao.module.biz.dal.dataobject.licenceSafeMeasures.BizLicenceSafeMeasuresDO;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 危险作业票主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class BizLicenceCreateReqVO extends BizLicenceBaseVO {

    @ApiModelProperty(value = "编号")
    private String number;

    @ApiModelProperty(value = "申请人")
    private String applicant;

    @ApiModelProperty(value = "申请单位")
    private String applicationUnit;

    @ApiModelProperty(value = "监护人")
    private String guardian;

    @ApiModelProperty(value = "流程编号")
    private String processInstanceId;

    @ApiModelProperty(value = "审核结果")
    private String result;

    @ApiModelProperty(value = "安全交底内容")
    private String securityContent;

    @ApiModelProperty(value = "许可人")
    private String licensor;

    @ApiModelProperty(value = "签发人")
    private String signer;

    @ApiModelProperty(value = "签发人签字")
    private String signerSignature;

    @ApiModelProperty(value = "许可人签字")
    private String licensorSignature;

    @ApiModelProperty(value = "分管负责人")
    private String inCharge;

    @ApiModelProperty(value = "分管负责人签字")
    private String inChargeSignature;

    @ApiModelProperty(value = "主要负责人")
    private String mainInCharge;

    @ApiModelProperty(value = "主要负责人签字")
    private String mainInChargeSignature;

    @ApiModelProperty(value = "许可人id")
    private String licensorId;

    @ApiModelProperty(value = "签发人id ")
    private String signerId;

    @ApiModelProperty(value = "分管负责人id")
    private String inChargeId;

    @ApiModelProperty(value = "主要负责人id")
    private String mainInChargeId;

    @ApiModelProperty(value = "部门id ")
    private String deptId;

    @ApiModelProperty(value = "状态（字典）")
    private Integer status;

    @ApiModelProperty(value = "作业票类型（字典）")
    private Integer type;

    @ApiModelProperty(value = "申请人id（字典）")
    private Long userId;

    @ApiModelProperty(value = "其他特殊作业id")
    private String otherLicenceId;

    @ApiModelProperty(value = "其他特殊作业名称")
    private String otherLicenceName;

    @ApiModelProperty(value = "分析数据")
    List<BizLicenceAnalyzeDataDO> analyzeDataList;

    @ApiModelProperty(value = "安全措施")
    List<BizLicenceSafeMeasuresDO> safeMeasuresList;

    @ApiModelProperty(value = "作业人员信息")
    private List<BizLicencePersonDO> personList;

    @ApiModelProperty(value = "是否提交审核 false保存草稿 true提交审核")
    Boolean submit;

    @ApiModelProperty(value = "其他特殊作业编号")
    private String otherLicenceNumber;
    @ApiModelProperty(value = "吊装人员及特殊工种作业证号")
    private String personnelNumber;
    @ApiModelProperty(value = "吊装指挥及特殊工种作业证号")
    private String commandNumber;
    @ApiModelProperty(value = "电工证号")
    private String electricianLicenseNo;

    private String pdfUrl;
    /********************************************** 作业票基本信息 ******************************************************/

    /**
     * 名称
     */
    @ApiModelProperty(value = "作业票名称")
    private String name;
    /**
     * 作业开始时间
     */
    @ApiModelProperty(value = "作业开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date startTime;
    /**
     * 作业结束时间
     */
    @ApiModelProperty(value = "作业结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @JsonFormat(shape= JsonFormat.Shape.STRING,pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date endTime;
    /**
     * 作业内容
     */
    @ApiModelProperty(value = "作业内容")
    private String content;
    /**
     * 风险辨识结果
     */
    @ApiModelProperty(value = "风险辨识结果")
    private String identificationResult;
    /**
     * 作业地点
     */
    @ApiModelProperty(value = "作业地点")
    private String address;
    /**
     * 监护人id
     */
    @ApiModelProperty(value = "监护人id")
    private String guardianId;

    /***************** 吊装 ******************/
    /**
     * 吊装工具
     */
    @ApiModelProperty(value = "吊装工具")
    private String liftingTools;
    /**
     * 起吊重物质量
     */
    @ApiModelProperty(value = "起吊重物质量")
    private String liftingWeight;

    /***************** 临时用电 ******************/

    /**
     * 电源接入点
     */
    @ApiModelProperty(value = "电源接入点")
    private String powerAccessPoint;
    /**
     * 许可用电功率
     */
    @ApiModelProperty(value = "许可用电功率")
    private String electricityPower;
    /**
     * 临时用电设备名称
     */
    @ApiModelProperty(value = "临时用电设备名称")
    private String deviceName;
    /**
     * 工作电压
     */
    @ApiModelProperty(value = "工作电压")
    private String operatingVoltage;
    /**
     * 额定功率
     */
    @ApiModelProperty(value = "额定功率")
    private String ratedPower;

    /***************** 动火 ******************/
    /**
     * 动火作业级别
     */
    @ApiModelProperty(value = "动火作业级别")
    private Integer level;
    /**
     * 动火方式
     */
    @ApiModelProperty(value = "动火方式")
    private String way;
    /***************** 受限空间 ******************/
    /**
     * 受限空间内原有介质名称
     */
    @ApiModelProperty(value = "受限空间内原有介质名称")
    private String originalMedium;
    /***************** 盲板抽堵 ******************/
    /**
     * 盲板介质
     */
    @ApiModelProperty(value = "盲板介质")
    private String bindPlateMedium;
    /**
     * 盲板温度
     */
    @ApiModelProperty(value = "盲板温度")
    private String bindPlateTemperature;
    /**
     * 盲板压力
     */
    @ApiModelProperty(value = "盲板压力")
    private String bindPlatePressure;
    /**
     * 盲板材质
     */
    @ApiModelProperty(value = "盲板材质")
    private String bindPlateMaterial;
    /**
     * 盲板规格
     */
    @ApiModelProperty(value = "盲板规格")
    private String bindPlateSpecification;
    /**
     * 盲板编号
     */
    @ApiModelProperty(value = "盲板编号")
    private String bindPlateNumber;
    /**
     * 盲板位置图
     */
    @ApiModelProperty(value = "盲板位置图")
    private String bindPlateImage;

    /***************** 高处 ******************/
    /**
     * 高度
     */
    @ApiModelProperty(value = "高度")
    private String height;

    @ApiModelProperty(value = "高空作业类型")
    private String highType;
    /***************** 动土 ******************/
    /**
     * 动土描述
     */
    @ApiModelProperty(value = "动土描述")
    private String groundBreakingDescription;
    /**
     * 动土图片
     */
    @ApiModelProperty(value = "动土图片")
    private String groundBreakingImage;
    /***************** 断路 ******************/
    /**
     * 断路原因
     */
    @ApiModelProperty(value = "断路原因")
    private String openCircuitReason;
    /**
     * 断路部门
     */
    @ApiModelProperty(value = "断路部门")
    private String openCircuitDept;
}
